﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Zarzadzanie_Restautacja.Controllers;
using Zarzadzanie_Restautacja.Helpers;
using Zarzadzanie_Restautacja.Model;

namespace Zarzadzanie_Restautacja.Forms
{
    public partial class KsiegowaForm : Form
    {
        private const string pln = "zł";

        private String dataDzisiejsza = DateTime.Now.ToShortDateString();
        private DateTime dataSprzedTygodnia = DateTime.Now.AddDays(-7);
        private DateTime dataSprzedMiesiaca = DateTime.Now.AddDays(-30);

        private decimal przychodzDzienny;
        private decimal przychodTygodniowy;
        private decimal przychodMiesieczny;

        public KsiegowaForm()
        {
            InitializeComponent();
            PoliczPrzychod();
            ZaktuailzujWidok();
        }

        private void PoliczPrzychod()
        {
            using (RestauracjaContext context = new RestauracjaContext())
            {
                if (context.PracownicyKsiegowosci.Where(kuch => kuch.Id == AppSettings.LoggedUserId).Any())
                {
                    Ksiegowa ksiegowa = context.PracownicyKsiegowosci.Where(kuch => kuch.Id == AppSettings.LoggedUserId).First();

                    this.przychodzDzienny = ksiegowa.PoliczPrzychodDzisiejszy();
                    this.przychodTygodniowy = ksiegowa.PoliczPrzychodTygodniowy();
                    this.przychodMiesieczny = ksiegowa.PoliczPrzychodMiesieczny();
                }
            }
        }

        private void ZaktuailzujWidok()
        {
            tbDzienny.Text = przychodzDzienny.ToString() + " " + pln;
            tbTygodniowy.Text = przychodTygodniowy.ToString() + " " + pln;
            tbMiesieczny.Text = przychodMiesieczny.ToString() + " " + pln;

        }


        private void button1_Click(object sender, EventArgs e)
        {
            using (var context = new RestauracjaContext())
            {
                var listaZamowien = context.Zamowienia.Where(zam =>
                    zam.Status == (int)Status.Zrealizowane &&
                    zam.data.ToString().Equals(dataDzisiejsza)).ToList();
                if (listaZamowien.Count() != 0)
                {
                    KsiegowaPrzychodForm kpf = new KsiegowaPrzychodForm(listaZamowien);
                    kpf.Show();
                }
                else
                {
                    MessageBox.Show("Brak zamowien dzisiaj");
                }
            }
        }

        private void btnTygodniowy_Click(object sender, EventArgs e)
        {
            using (var context = new RestauracjaContext())
            {
                var listaZamowien = context.Zamowienia.Where(zam =>
                    zam.Status == (int)Status.Zrealizowane &&
                    zam.data > dataSprzedTygodnia).ToList();

                if (listaZamowien.Count() != 0)
                {
                    KsiegowaPrzychodForm kpf = new KsiegowaPrzychodForm(listaZamowien);
                    kpf.Show();
                }
                else
                {
                    MessageBox.Show("Brak zamowien w ostatnich 7 dniach");
                }
            }
        }

        private void btnMiesieczny_Click(object sender, EventArgs e)
        {
            using (var context = new RestauracjaContext())
            {
                var listaZamowien = context.Zamowienia.Where(zam =>
                    zam.Status == (int)Status.Zrealizowane &&
                    zam.data > dataSprzedMiesiaca).ToList();

                if (listaZamowien.Count() != 0)
                {
                    KsiegowaPrzychodForm kpf = new KsiegowaPrzychodForm(listaZamowien);
                    kpf.Show();
                }
                else
                {
                    MessageBox.Show("Brak zamowien w ostatnich 30 dniach");
                }
            }
        }


    }
}
